package com.jacob.androidstudy.javanote;

import java.util.Arrays;

public class $02_Java数组 {

	/**
	 * 处理数组，可以使用java.util.Arrays类下的方法。
	 */
	public static void main(String[] args) {
//		定义一个数组的变量
		int[] a;
		
//		将数组实例化。用这种方式实例化后，就不能再改变数组的长度。Java中允许数组长度为0。
		a = new int[0];
		a = new int[10];
		
//		也可以定义的同时实例化数组
		int[] a1 = new int[10];
		int[] a2 = new int[]{1,2,3,4,5,6,7,8,9,0};
		int[] a3 = {1,2,3,4,5,6,7,8,9,0};
		
//		使用array.length获得数组中元素的个数
		for(int tem = 0; tem<a1.length; tem++)
			a1[tem] = 100;
		
//		数组拷贝，使用Arrays.copyOf(original, newLength)方法。
//		original是被拷贝的数组，newLength是新数组的长度。
//		若数组是数值型，多出来的元素值为0；若是布尔型，多出来的元素值为false。
//		若newLength小于original.length，则多余的元素不拷贝。
//		int[] tem = Arrays.copyOf(a2, a2.length*2);
		
//		对数组进行升序排序，可以使用Arrays.sort(original);
//		Arrays.sort(tem);
	}

}

/**
 * Java的二维数组实际上是由数组的数组构成的，所以第二维可以不等长。
 *
 */
class 二维数组 {
	public static void main(String[] args) {
//		定义一个二维数组。
		int[][] a;
		
//		实例化二维数组
		a = new int[10][10];
		
//		第二维可以不等长
		a = new int[10][];
		a[1] = new int[1];
		a[2] = new int[2];
		a[3] = new int[3];
		
//		也可以定义的同时实例化二维数组
		int[][] a1 = new int[10][8];
		int[][] a2 = new int[][]{{123},{45},{6}};
		int[][] a3 = {{123},{45},{6}};
		
//		使用array.length获得第一维的长度，使用array[i].length获得第二维的长度。
		for(int i = 0; i<a1.length; i++)
			for(int j = 0; j<a1[i].length; j++)
				a1[i][j] = 100;
	}
}
